<?php 
use com\soka as soka;
class Novedad_Ctl extends soka\SokaController
{
	private $_nov,	$_trab, $_tipnov;

	public function _init()
	{
		$this->_nov = $this->setModel('novedad');
		$this->_trab=$this->setModel('trabajador');
		$this->_tipnov=$this->setModel('tiponovedad');
	}

	private function listTrab($id){
 		$this->_nov->id($id)->getById();
 		return $this->_trab->showlist('primer_nombre', $this->_nov->trabajador_id());
 	}

 	private function listTipNov($id){
 		$this->_nov->id($id)->getById();
 		return $this->_tipnov->showlist('nombre', $this->_nov->tiponovedad_id());
 	}

 	private function listNove($id){
 		$this->_nov->id($id)->getById();
 		return $this->_nov->showlist('nombre', $this->_nov->nombre());
 	}

	public function index($id = null)
	{
		(isset($_POST['submit']) && ($_POST['id'] == 0)) ? self::_add() : false;
		$this->list_trabajador=self::listTrab($id);
		$this->list_tiponovedad=self::listTipNov($id);
		$this->list_nove=self::listNove($id);
		$this->con = $this->_nov->id((int)$id)->getById();
		isset($_POST['id']) ? self::_update(): false;	
		$this->datos = isset($_POST['btn_buscar']) ? $this->_nov->getAll(null, null, array('nombre'=> $_POST['txt_buscar_tn'])): $this->_nov->getAll();
		$this->datos=$this->_nov->get();
	}
	
	private function _add()
	{
		extract($_POST);
		if ($fecha_termino > $fecha_inicial) {
			 if ($id == 0 && $this->_nov
		   	->nombre($list_nove)
		   	->fecha_inicial($fecha_inicial)
		   	->fecha_termino($fecha_termino)
		   	->descripcion($descripcion)
	   		->trabajador_id($list_trabajador)
	   		->tiponovedad_id($list_tiponovedad)
	   		->estado(1)->add()){
		   	$msg['error'] = 'El registro fue guardado correctamente.';}
			else {
			$msg['error']  = 'Ha ocurrido un error!';
			$msg['causas'][]  = 'La novedad ya existe!';
			}		
		}
		else{
			$msg['error']  = 'Ha ocurrido un error!';
			$msg['causas'][]  = 'La fecha de termino es menor que la fecha inicial!.';
				
			}
		  
				
	$this->messagge=$msg;
	}

	public function delete()
	{
		$this->view(false);
		if (isset($_POST['id_delete'])) {
			$this->_nov->id((int) $_POST['id_delete']);
			if($this->_nov->getById() && $this->_nov->estado() == 1) {
				if($this->_nov->del(false))
					$data['messagge'] = 'El registro fue desactivado correctamente.';
							$msg['causas'][]  = 'i';
			} else {
				if($this->_nov->del(true))
					$data['messagge'] = 'El registro fue activado correctamente.';
							$msg['causas'][]  = 'i';
			}
		}
		echo json_encode($data);
	}

	private function _update()
	{
		extract($_POST);
		if( ($id > 0) && $this->_nov->id($id)
				->nombre($list_nove)
				->fecha_inicial($fecha_inicial)
				->fecha_termino($fecha_termino)
				->descripcion($descripcion)
		   		->trabajador_id($list_trabajador)
	   		->tiponovedad_id($list_tiponovedad)
		   		->estado(1)->add())
			$ho['error'] = 'El registro fue actualizado correctamente.';
				$this->messagge2=$ho;
	}
}